Method and system for programming and controlling an electrosurgical generator system

ABSTRACT

An electrosurgical generator system includes an electrical generator having an RF stage for outputting electrical energy having at least one waveform for performing an electrosurgical procedure. The system further includes at least one control module executable on at least one processor which controls at least one parameter of the outputted electrical energy and a configuration controller operably associated with the electrical generator which generates configuration data to configure the at least one control module to provide at least one modality of control of the outputted electrical energy based on the configuration data.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a Continuation Application of U.S. patentapplication Ser. No. 11/901,652, filed Sep. 18, 2007, now U.S. Pat. No.8,080,008, which is a divisional application of and claims the benefitof and priority to U.S. patent application Ser. No. 10/835,657, filedApr. 30, 2004, now U.S. Pat. No. 8,012,150, which claims the benefit ofand priority to U.S. Provisional Patent Application Ser. No. 60/466,954filed on May 1, 2003, the entire contents of each of which areincorporated herein by reference.

BACKGROUND

1. Technical Field

The present disclosure is directed to electrosurgery and, in particular,to a method and system for programming and controlling anelectrosurgical generator system.

2. Description of the Related Art

Electrosurgery entails the use of electrosurgical energy to cut orcoagulate tissue, or perform some other type of surgical procedure. Anelectrosurgical generator system is used for generating theelectrosurgical energy and delivering the same to an electrode connectedto the generator. The electrode is then brought into contact with tissueand depending on the frequency and other parameters of theelectrosurgical energy, the tissue is either cut, coagulated, sealed,etc.

In order to achieve desired surgical results when operating theelectrosurgical generator system in one of several control modes, e.g.,cut, coagulate and blend, the electrosurgical generator system needs tobe programmed to generate electrosurgical energy having outputparameters with predetermined values. These desired output parameterstypically include the frequency, power (amplitude), duty cycle, andwaveform-type of the electrosurgical energy, as well as the outputcurrent and output voltage of the electrosurgical generator system.

It is evident that by programming the electrosurgical generator system,one can control various parameters, including other factors, such as themaximum allowable temperature of the tissue during electrosurgery, rateof change of impedance, etc., prior to initiating the electrosurgicalprocedure.

Accordingly, the present disclosure provides a method and system capableof enabling an individual to quickly create new electrosurgicalapplications without major re-programming of the software system of anelectrosurgical generator system.

SUMMARY

A method and system are disclosed capable of enabling an individual toquickly create new electrosurgical applications without majorre-programming of the software system of an electrosurgical generatorsystem. In one embodiment, the method and system of the presentdisclosure enables an individual to efficiently create new applicationmodes by creating configuration or command files for downloading orprogramming these new modes into the electrosurgical generator systemfor creating new surgical applications without changing the underlyingsoftware system.

A control loop system is chiefly responsible for the operation of theelectrosurgical generator system and it is composed of three basiccomponents: an inner loop system which is responsible for changing andsculpting basic RF output; an outer loop system which is responsible forsetting the output target of the inner loop based on a variety ofalgorithms such as the control of temperature; and a configurationcontrol system which is responsible for reprogramming the inner andouter loop systems “on-the-fly” or in virtual real-time for the innerand outer loop systems to change operation.

All user programming is preferably accomplished using at least one inputdevice, such as a keyboard, touch-screen display, etc., while thesoftware programming may be based on a file-based programming languageto input programming commands to the electrosurgical generator system.The combination of the two inputted programming commands are stored intocommand files and define all aspects and parameters of theelectrosurgical generator system.

The simple input and storage of the programming commands according tothe present disclosure allows for easy creation and modification of newelectrosurgical generator modes. For example, a mode can be created byinputting programming commands and storing the same in a command file,subsequent modes can easily be created by modifying associatedparameters and storing them as a new command file.

Further features of the above embodiments will become more readilyapparent to those skilled in the art from the following detaileddescription when taken in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments will be described herein below with reference to thedrawings wherein:

FIG. 1 is a block diagram of a control loop system of an electrosurgicalgenerator system in accordance with the present disclosure;

FIGS. 2A-D illustrate charts showing output waveforms indicative ofvarious output parameters of the electrosurgical generator system inaccordance with the present disclosure; and

FIG. 3 is a block diagram of a control loop system of an electrosurgicalgenerator in accordance with another embodiment of the invention.

DETAILED DESCRIPTION

Reference should be made to the drawings where like reference numeralsrefer to similar elements. Referring to FIG. 1, there is shown a blockdiagram of an embodiment of a control loop system for an electrosurgicalgenerator system in accordance with the present disclosure. The controlloop system is designated generally by reference numeral 100 and it isdesigned to enable a software developer to efficiently program andcontrol the operation of the electrosurgical generator system 200. Theelectrosurgical generator system 200 is particularly designed for theeasy creation of multiple different electrosurgical systems. The methodand system of the present disclosure enables an individual toefficiently create new application modes by creating configuration orcommand files for downloading or programming these new modes into theelectrosurgical generator system for creating new surgical applicationswithout changing the underlying software system.

The control loop system 100 is chiefly responsible for the operation ofthe electrosurgical generator system 200 and it is composed of threebasic components: an inner loop system 102 which is responsible forchanging and sculpting basic RF output (e.g., current, power, or voltageoutput, duty cycle, frequency), and inner loop control system dynamicsof an RF output stage 106 based on user and/or sensor inputs fromvarious sensors 104 and/or user input devices (not shown); an outer loopsystem 108 which is responsible for controlling the inner loop setpointbased on a variety of algorithms (e.g., temperature control, impedancecontrol, pulse control, vessel sealing, etc.) based on user and/orsensor inputs from the various sensors 104 and time and/or user inputdevices (not shown); and a configuration control system 110 which isresponsible for changing the programming of the inner and outer loopsystems 102, 108 “on-the-fly” or in virtual real-time based on user orsensor inputs received from various sensors 112 and/or user inputdevices (not shown).

FIGS. 2A-2D illustrate charts showing the RF output indicative ofvarious inner loop output parameters of the electrosurgical generatorsystem 200. FIG. 2A is a chart plotting the output power versus the loadimpedance where the output power is sculpted, e.g., the output power isnot constant over a load impedance range. The electrosurgical generatorsystem 200 is able to control the inner loop system 102 to sculpt theoutput power based on user and/or sensor inputs received from varioussensors 104, 112 and/or user input devices.

With reference to FIGS. 2B-2D, the electrosurgical generator system 200is also able to maintain the output constant. FIG. 2B shows the outputcurrent being maintained at a constant level over a load impedancerange. FIG. 2C shows the output power being maintained at a constantlevel over a load impedance range. FIG. 2D shows the output voltagebeing maintained at a constant level over a load impedance range.

As shown by FIG. 1, the inner loop system 102 is controlled by an innerloop controller 114, the outer loop system 108 is controlled by an outerloop controller 116, and the configuration control system 110 iscontrolled by a configuration controller 118. The controllers 114, 116perform their various functions by the execution of a set ofprogrammable instructions by at least one microprocessor and/or at leastone digital signal processor (DSP), e.g., DSPs 120, 122, respectively.The configuration controller 118 performs its various functions by theexecution of a set of programmable instructions executed by at least onemicroprocessor and/or a DSP, e.g., DSP 124. The controllers 114, 116,118 are configured for receiving inputted programming commands foroperating the electrosurgical generator system 200.

All programming is preferably accomplished using at least one inputdevice, such as a keyboard, touch-screen display, remote computersystem, etc., to input the programming commands to the electrosurgicalgenerator system 200. The inputted programming commands are stored intocommand files within at least one memory module, such as a RAM module,and define all aspects and parameters of the electrosurgical generatorsystem 200.

The simple input or download and storage of the programming commandsaccording to the present disclosure allows for easy creation andmodification of new electrosurgical generator modes. For example, onemode can be created by inputting programming commands and storing thesame in a command file. A new mode can be created based on the originalprogramming.

A description will now be presented with reference to programming the atleast one microprocessor by way of a programming language in a preferredembodiment for controlling and programming the electrosurgical generatorsystem 200 of the present disclosure.

I. Configuration Control System

The set of programmable instructions for operating the electrosurgicalgenerator system 200 in accordance with the present disclosure has beendesigned to enable two analog inputs to the configuration controller 118to control the mode (outer and inner loop programming) and the desiredoutput (current (I), power (P), voltage (V), etc. depending on thecontrol mode selected) of the electrosurgical generator system 200.

In an exemplary embodiment of the present disclosure, the method of modecontrol is accomplished by making a data structure, e.g., Local_Cfg[ ],an array. When a mode switch is desired, a host variable, e.g.,Config_Index, is adjusted and then copied to a processing file, e.g.,Out_Local_IO.Config_Index, where it switches an active command file,e.g., Local_Cfg[Local_IO.Config_Index].

The method of desired output programming is accomplished by adjusting ahost variable, e.g., Out_Local_IO.Desired_Amplitude_Multiplier, whereDesired_Amplitude_Multiplier represents a multiplier value for adjustingthe output curves of the outer loop system 108 when enabled or is passeddirectly to the inner loop system 102 as a current/power/voltage levelif the outer loop system 108 is disabled.

I.a. Configuration Selection Control

The configuration selection is programmed by filling the variable, e.g.,Local_Cfg[ ], with the data from the sets of command files. Theconfiguration index is first specified, then the data is read from thecommand files, then the next index is specified, etc.

I.a.1 Command File Programming

The programming of the configuration control system 110 is controlled bya Meta command file. This command file loads the Local_Cfg[ ] array witheach configuration and specifies how the configuration andDesired_Amplitude_Multiplier is controlled.

To specify which location in the Local_Cfg[ ] array is to be filled, thefollowing command is used:

#CONFIG_INDEX x, where x specifies the location to be filled (0-7).

To specify which configuration is to be loaded in the memory module, thefollowing command is used:

#INCLUDE_FILE xxx, where xxx is a valid path and filename of outer andinner loop command files which define the configuration to be loaded inthe memory module.

An example is provided below:

// Load Config Index Location 0 #CONFIG_INDEX 0 // Inner Loop definition#INCLUDE_FILE C:\LRT_TRT\Code\Cmd_Files\CP_472k_Inner_Loop.cmd // LoadOuter Loop definition #INCLUDE_FILEC:\LRT_TRT\Code\Cmd_Files\Temp_Outer_Loop.cmd // Load Config Indexlocation 1 #CONFIG_INDEX 1 // Inner Loop definition #INCLUDE_FILEC:\LRT_TRT\Code\Cmd_Files\CP_250k_Inner_Loop.cmd // Load Outer Loopdefinition #INCLUDE_FILE C:\LRT_TRT\Code\Cmd_Files\DZ_Outer_Loop.cmdI.b. Mode Selection Control

Mode selection can be programmed to be selected by one of three inputs:a user input device (e.g., a keyboard), AD7 or AD8, where AD7 and AD8are sensor modules. Mode modification can be programmed to be controlledby one of three inputs: a user input device to (e.g., a keyboard), AD7or AD8. The operation of the mode selection and mode modificationcontrol is that one control input can be set to select the mode, thenanother control can make the fine adjustments to that selection. Themode modification may be done in an additive fashion as shown in theexample below:Actual Mode=Mode(AD7)+Modifier(AD8).I.b.1. Command File Programming

A Mode Selection Algorithm which controls how the active mode switchingis set may be selected.

The valid exemplary selection choices are the following:

#MODE_SEL_ALG_IS_KEYBOARD -keyboard sets the active mode.#MODE_SEL_ALG_IS_AD7 #MODE_SEL_ALG_IS_AD8

A Mode Modification Algorithm which controls how the active modeswitching is set by a modifier also may be selected.

The valid exemplary selection choices are the following:

#MODE_MODIFIER_SEL_IS_OFF -No modifier is used on active mode switching.#MODE_MODIFIER_SEL_IS_AD7 #MODE_MODIFIER_SEL_IS_AD8I.c. Amplitude Selection Control

Amplitude multiplication selection can be selected by one of threeinputs: a user input device (e.g., a keyboard), AD7 or AD8. Amplitudemultiplication modification can be controlled by one of three inputs:keyboard, AD7 or AD8. The operation of the selection and modificationcontrol is that one control input can be set to select the amplitudemultiplication, then another control can make fine adjustments to thatselection. The amplitude multiplication modification may be done in anadditive fashion as shown in the example below:Actual Amp=Amp(AD7)+Modifier(AD8).

It is noted that amplitude multiplication is used both for outer loopprogramming and if the outer loop system 108 is off, for the desiredoutput of the inner loop system 102. When the outer loop system 108 ison, a normalized curve is designed which specifies the desired outputover time, and an amplitude multiplier controls the amplitude of thiscurve. A time multiplier controls the time scale at which this curve isinterpreted.

I.c.1. Command File Programming

The Output Amplitude Multiplier Algorithm controls how an outputamplitude multiplier is set.

The valid exemplary selection choices are the following:

#AMP_SEL_ALG_IS_KEYBOARD #AMP_SEL_ALG_IS_AD7 #AMP_SEL_ALG_IS_AD8

The Output Amplitude Modifier Algorithm controls how an output amplitudemodifier is set.

The valid selection exemplary choices are the following:

#AMP_MODIFIER_SEL_IS_OFF #AMP_MODIFIER_SEL_IS_AD7#AMP_MODIFIER_SEL_IS_AD8I.d. RF Activation Control

The control loop system 100 can be programmed to activate RE outputbased on either AD7 or AD8 inputs. A user input device, such asfootswitch of the electrosurgical generator system 200 can also be usedto activate RF output. The threshold of activation can be programmed.

I.d.1. Command File Programming

RF Activation Programming selects which source will start the RFactivation:

#RF_ACT_IS_FOOTSWITCH -Normal footswitch activation. #RF_ACT_IS_AD7-Activated by AD7 voltage above threshold. #RF_ACT_IS_AD8 -Activated byAD8 voltage above threshold. #RF_ACT_VOLTAGE_THRESHOLD -Specifies thevoltage threshold

It is noted that in a preferred embodiment, footswitch activation of theelectrosurgical generator system 200 is always active, even if inputsAD7 or AD8 are selected.

I.e. AD7/AD8 Curves

The programming of sensor input controls is accomplished through thecreation of a “map” which specifies the amplitude multiplier andconfiguration index and maps these values to an input voltage.

I.e.1. Command File Programming

The Mode Control and Amplitude Multiplier Control Maps for each ControlVoltage (AD7/AD8) need to be specified.

An exemplary table is shown:

Sensor Voltage Amplitude Multiplier Configuration Index 1.0 0.9 1 2.01.1 2

Exemplary valid programming commands are:

#AD7_MAP_V_x y #AD7_MAP_AMP_x y #AD7_MAP_INDEX_x y #AD8_MAP_V_x y#AD8_MAP_AMP_x y #AD8_MAP_INDEX_x y where x = 0 - 7 where y is theprogrammed valueExample for AD8:

#AD8_MAP_V_0 1.47 #AD8_MAP_AMP_0 0.0 #AD8_MAP_INDEX_0 0 #AD8_MAP_V_11.57 #AD8_MAP_AMP_1 0.0 #AD8_MAP_INDEX_1 0 #AD8_MAP_V_2 1.66#AD8_MAP_AMP_2 0.0 #AD8_MAP_INDEX_2 0 #AD8_MAP_V_3 1.76 #AD8_MAP_AMP_30.0 #AD8_MAP_INDEX_3 0 #AD8_MAP_V_4 1.85 #AD8_MAP_AMP_4 0.0#AD8_MAP_INDEX_4 0 #AD8_MAP_V_5 1.94 #AD8_MAP_AMP_5 0.0 #AD8_MAP_INDEX_50 #AD8_MAP_V_6 2.04 #AD8_MAP_AMP_6 0.0 #AD8_MAP_INDEX_6 0 #AD8_MAP_V_76.00 #AD8_MAP_AMP_7 0.0 #AD8_MAP_INDEX_7 0I.e.2. Related Routines

894 HOST.CPP 37 |--Process_Sensor_Control   | | 1313 HOST.CPP 38 ||--Get_AD7_Sensor_Map_Index   | | 1343 HOST.CPP 39 ||--Get_AD8_Sensor_Map_Index   | | 1427 HOST.CPP 40 ||--Update_Sensor_Pads  41| | |..sqrt   | | 709 HOST_I~1.CPP 42 ||--Send_TCL_Data 926 HOST_I~1.CPP Delay 43 | | |--{ 11 }  44 | ||..SET_DATA_IN   | | 646 HOST_I~1.CPP 45 | |--Get_Keying_Request  46 | ||..DIG_In_Prt   | |  47 | |..AI_VRead printfII. Outer Loop System

The outer loop system 108 is responsible for controlling the setpoint(e.g. DSP_Shared_Data.RF_Desired_Output) for the inner loop system 102.The concept of temperature control will be used to describe how this isaccomplished, however other control methods may be used, such as but notlimited to rate of change of temperature control, impedance control andrate of change of impedance control. In temperature control mode, theouter loop system 108 is programmed to follow a specific temperature vs.time curve. The outer loop system 108 uses the temperature versus timecurve to retrieve its target temperature after lapse of a specifiedtime, e.g., after a procedure has started. If the temperature is low,then the outer loop system 108 raises the inner loop setpoint. If thetemperature is high, then the outer loop system 108 lowers the innerloop setpoint. The inner loop system 102 then attempts to deliver RF asspecified by the inner loop setpoint, and thus raise or lower thetemperature.

The user is given control of the amplitude multiplier and/or the timemultiplier which adjust the temperature versus time curves. The curvesare specified as normalized values from 0.0 to 1.0. Thus, thetemperature curve can be increased by increasing the amplitudemultiplier:Target Temperature=Temperature_Curve(Time)*Amplitude Multiplier;

The time scale in which the curve is executed may also be adjusted bymodifying the time multiplier in a similar fashion to the targettemperature, thus:Time=Time Curve*Time Multiplier;

The outer loop system 108 operates in selectable modes for controllingtemperature, rate of change of impedance and work (in Joules). Thesource code enables the addition of other modes, if desired.

The outer loop system 108 can also be turned off. In this case, theamplitude multiplier is passed directly to the inner loop system 102 asthe setpoint and the time multiplier is not used.

Sitting on top of all the outer loop modes and algorithms is a pulsingcontrol system. This pulsing control system allows the user to specifypulsing waveform pattern parameters, such as the number of pulses in aburst of pulses, the duty cycle (e.g., ratio of on time to off time),delay time (e.g., time between bursts of pulses), frequency (e.g.,1/time between rising edges of ‘on time’), and on/off amplitude envelope(e.g., amplitude pattern of a burst of pulses) for pulses to bedelivered.

II.a. Command File Programming

Outer loop Proportional Integral Derivative (PID) parameters control thedynamic behavior of the outer loop system 108. Preferably, the controlsystem is a PID system.

#OUTER_LOOP_P 1.0 #OUTER_LOOP_I 0.0001 #OUTER_LOOP_D 0.0

Outer loop control output limit parameters, including minimum andmaximum inner loop target values, are used to limit the range that theouter loop system 108 can change the inner loop setpoint. The outer loopcontrol output limit parameters are sent from the outer loop system 108to the inner loop system 102. The data is either in watts, amps or voltsdepending on the inner loop programming (e.g., using curves selectedfrom I, P, V curves).

Exemplary limits are:

#OUTER_LOOP_OUTPUT_MAX 150.0 #OUTER_LOOP_OUTPUT_MIN 0.0

An outer loop start point is the starting inner loop target. This givesthe outer loop system 108 a point at which to start prior to startingactive control.

An exemplary start point is:

#OUTER_LOOP_OUTPUT_START 5.0

Outer loop curve types specify which outer loop algorithm is to beexecuted. The software system may support numerous different algorithms.A few exemplary valid types are shown below:

Valid types are:

#OUTER_LOOP_ALG_IS_TEMPERATURE #OUTER_LOOP_ALG_IS_OFF

An outer loop amplitude curve specifies the target amplitude part of thetarget versus time curve that the outer loop system 108 uses todetermine its target.

A corresponding table is provided which specifies the shape of theamplitude curve.

  The target value = OUTER_LOOP_CURVE_AMP[TIME*TIME_Multiplier] *AMPLITUDE_Multiplier  #OUTER_LOOP_CURVE_AMP_03 0.01

Exemplary Amplitude Curve:

#OUTER_LOOP_CURVE_AMP_00 0.2 #OUTER_LOOP_CURVE_AMP_01 0.4#OUTER_LOOP_CURVE_AMP_02 0.6 #OUTER_LOOP_CURVE_AMP_03 0.8#OUTER_LOOP_CURVE_AMP_04 1.0 #OUTER_LOOP_CURVE_AMP_05 1.0#OUTER_LOOP_CURVE_AMP_06 1.0 #OUTER_LOOP_CURVE_AMP_07 1.0#OUTER_LOOP_CURVE_AMP_08 1.0 #OUTER_LOOP_CURVE_AMP_09 1.0#OUTER_LOOP_CURVE_AMP_10 1.0 #OUTER_LOOP_CURVE_AMP_11 1.0#OUTER_LOOP_CURVE_AMP_12 1.0 #OUTER_LOOP_CURVE_AMP_13 1.0#OUTER_LOOP_CURVE_AMP_14 1.0 #OUTER_LOOP_CURVE_AMP_15 1.0#OUTER_LOOP_CURVE_AMP_16 1.0 #OUTER_LOOP_CURVE_AMP_17 1.0#OUTER_LOOP_CURVE_AMP_18 1.0 #OUTER_LOOP_CURVE_AMP_19 1.0#OUTER_LOOP_CURVE_AMP_20 1.0 #OUTER_LOOP_CURVE_AMP_21 1.0#OUTER_LOOP_CURVE_AMP_22 1.0 #OUTER_LOOP_CURVE_AMP_23 1.0#OUTER_LOOP_CURVE_AMP_24 1.0

Outer loop time curve parameters specify the shape of the time curve,where each location in the OUTER_LOOP_CURVE_AMP[ ] corresponds to thevalues in the time curve. The time multiplier thus allows the user toexpand or contract the time at which the AMP curve generates the targetsto the outer loop.

It is noted that the location may be specified with two digits, forexample:

#OUTER_LOOP_CURVE_TIME_(—)03 0.01

Exemplary Time Curve:

#OUTER_LOOP_CURVE_TIME_00 0.0 #OUTER_LOOP_CURVE_TIME_01 0.04167#OUTER_LOOP_CURVE_TIME_02 0.08333 #OUTER_LOOP_CURVE_TIME_03 0.125#OUTER_LOOP_CURVE_TIME_04 0.1667 #OUTER_LOOP_CURVE_TIME_05 0.2083#OUTER_LOOP_CURVE_TIME_06 0.25 #OUTER_LOOP_CURVE_TIME_07 0.29167#OUTER_LOOP_CURVE_TIME_08 0.3333 #OUTER_LOOP_CURVE_TIME_09 0.375#OUTER_LOOP_CURVE_TIME_10 0.41667 #OUTER_LOOP_CURVE_TIME_11 0.4583#OUTER_LOOP_CURVE_TIME_12 0.5 #OUTER_LOOP_CURVE_TIME_13 0.54167#OUTER_LOOP_CURVE_TIME_14 0.5833 #OUTER_LOOP_CURVE_TIME_15 0.625#OUTER_LOOP_CURVE_TIME_16 0.6667 #OUTER_LOOP_CURVE_TIME_17 0.70833#OUTER_LOOP_CURVE_TIME_18 0.75 #OUTER_LOOP_CURVE_TIME_19 0.79167#OUTER_LOOP_CURVE_TIME_20 0.8333 #OUTER_LOOP_CURVE_TIME_21 0.875#OUTER_LOOP_CURVE_TIME_22 0.9167 #OUTER_LOOP_CURVE_TIME_23 0.9583#OUTER_LOOP_CURVE_TIME_24 1.0

Outer_Loop_Misc_Parms is an array of parameters which may be passed tothe outer loop system 108 to make modifications in the algorithm,providing a method for making subtle adjustments to an algorithm fordifferent tissue types or handsets.

A miscellaneous outer loop algorithm parameter table is forsub-variations within a specific algorithm structured as a twodimensional array, Outer_Loop_Misc_Parm[y][x].

#OUTER_LOOP_MISC_PARMS_(—)00_(—)00 10.0

Pulse modes of the outer loop system 108 are programmed with thefollowing exemplary commands:

Turning ON or OFF the pulse mode is accomplished with the commands:

#PULSE_MODE_ON #PULSE_MODE_OFF

Specifying the pulse on/off widths in seconds is accomplished with thecommands:

#PULSE_ON_WIDTH 0.100 // 100 ms #PULSE_OFF_WIDTH 0.200 // 200 ms

The number of pulses to be delivered is specified by the command:

#NUM_PULSES 5 //5 pulses

The output level (in units of the inner loop desired output) isspecified by the command:

#PULSE_OFF_LEVEL 7 //7 watts if constant power

III. Inner Loop System

The inner loop system 102 is responsible for the low level control ofthe RF delivery. The inner loop system 102 has programming controls forthe control variable selection (e.g., current, power or voltagecontrol), control curve definition (e.g., power curve shape), waveformdefinition, RF Frequency selection, calibration, sensor variable gaindynamics (e.g., automatic gain control dynamics for the V, I sensors104) and control dynamics (e.g., PID variables for the control system).

The inner loop system 102 can be programmed for two basic modes ofoperation, open loop and closed loop. In open loop mode, the RF outputis set to the fixed value of the high voltage power supply, and is notadjusted by software. The calibration of output RF power is controlledby Econ_Gain and Offset parameters, and the power curve is defined bythe RF stage characteristics. In closed loop mode, the software readsthe sensor board values of V, VI phase shift and I, and calculates Vrms,Irms, Pavg (which may be determined in accordance with the VI phaseshift, Zrms, crest factor, cable impedances, Vpeak, and/or Ipeak andcontrols the RF output to match the desired control curve.

III.a. Command File Programming

Inner loop commands are typically specified in an ‘Inner Loop’ commandfile so that the commands are separate from the ‘Outer Loop’ and ‘Meta’commands files. This configuration allows easier sharing of command fileprogramming.

III.a.1. RF Frequency Selection

The system may have various RF frequency selections available such as:250, 500, 750, 1000, 1250, 1500, 1750, 2000 Khz.

Exemplary command file programming commands for frequency selection areas follows:

#SET_FREQ_SEL_250KHZ #SET_FREQ_SEL_500KHZ #SET_FREQ_SEL_750KHZ#SET_FREQ_SEL_1000KHZ #SET_FREQ_SEL_1250KHZ #SET_FREQ_SEL_1500KHZ#SET_FREQ_SEL_1750KHZ #SET_FREQ_SEL_2000KHZIII.a.2. PID Parameters

The inner loop control dynamics are controlled by two sets ofparameters, the PID parameters and the I, P, V gain adjusts. The PIDparameters are adjusted to give the appropriate dynamic responseassuming a system gain of I. The I, P and/or V gain adjusts are used tomodify the PID parameters based on the actual gains of the system in therespective control area (e.g., current, power and voltage) which changesbased on load impedance, frequency, and waveform duty cycle.

Exemplary PID parameter commands are:

#CNTL_SYS_P 0.8269 #CNTL_SYS_I 0.7133 #CNTL_SYS_D 0.0264

Control system target gain compensation controls the change in loop gainbased on which target the control system is aiming at (e.g., current,power, voltage). The PID_GAIN_ADJ is multiplied by the PID values tochange the loop gain, e.g., P=CNTL_SYS_P*I_PID_GAIN_ADJ.

Exemplary Gain Adjust parameter commands are:

#I_PID_GAIN_ADJ 0.3 #P_PID_GAIN_ADJ 0.008 #V_PID_GAIN_ADJ 0.005III.a.3. Crest Factor

Crest factor is defined as: Crest Factor=Pk/Rms. Crest factor specifiesthe ratio of the signal PK to RMS value, thus giving an indication ofmaximum amplitude to be expected from the waveform.

Since the system reads the actual V, I waveforms, the software needs toknow how to set the scaling for sensors on a sensor board for thespecified waveform. Crest factor allows the software to calculate themaximum expected amplitude of the waveform, so that it can calculate thePID settings for the sensor board.

The crest factor should be measured at about 10 ohms, which is typicallythe highest (e.g., corresponds to the least ringing).

An exemplary crest factor setting command is:

#CREST_FACTOR 2

III.a.4. Control Mode/Curve Definitions

A control mode definition specifies which basic mode the control systemoperates in, open or closed loop.

Exemplary control mode definition commands are:

#CONTROL_MODE_IS_OPEN_LOOP #CONTROL_MODE_IS_CLOSED_LOOP

A control curve definition specifies how the impedance curve maps areinterpreted.

Exemplary control curve definition commands are:

#CONTROL_CURVE_IS_CURRENT #CONTROL_CURVE_IS_POWER#CONTROL_CURVE_IS_VOLTAGEIII.a.5. Control System Maximums

Control system maximum parameters control the maximum outputs allowedfor the generator in the given mode. This protects the generator, as thecontrol system does not allow the current, power, and/or voltage to gobeyond these limits no matter what other settings are programmed to beset to. Current is in RMS Amps, power in watts, and voltage is in RMSvolts.

Exemplary maximum parameter control commands are:

#MAX_CURRENT 4.0 #MAX_POWER 150 #MAX_VOLTAGE 500III.a.6. Control Curve Definition

An RF output control curve can be programmed to one of at least threemodes of operation: constant current, constant power and constantvoltage.

The modes of operation specify the target that the control system triesto control. All of these modes use two maps (e.g., the curve map and theimpedance map) and the Zlow and Zhigh parameters to define theoperation. Viewed together these two maps define the basic shape of thecontrol curve at the specified impedance points. Preferably, the curvemap is normalized from 0 to 1.0 and the impedance map is in ohms.

Exemplary maps can be viewed as below:

Impedance Map Value Curve Map Value 0 0.5 100 0.75 200 1.0 300 1.0 5000.5

A curve defined by the exemplary map value is shown in FIG. 2A.Exemplary charts of each mode are shown in FIGS. 2B-2D and explainedbelow.

III.a.6.i. Constant Current Curves

The constant current mode attempts to provide constant current from 0 toZ High ohms. After Z High ohms, it switches to providing constantvoltage (see FIG. 2B).

III.a.6.ii. Constant Power Curves

The constant power mode attempts to provide constant power from Z Low toZ High ohms. Below Z Low, it switches to providing constant currentmode, and above Z High, it switches to providing constant voltage (seeFIG. 2C).

III.a.6.iii. Constant Voltage Curves

The constant voltage mode attempts to provide constant voltage from ZLow and above. Below Z Low, it switches to providing constant current(see FIG. 2D).

III.a.7. Sensor Automatic Gain Control Dynamics

To accurately read the voltage and current sensors 104, an automaticgain control system is provided to the electrosurgical generator system200 for providing a high speed A/D converter with a properly amplifiedsignal. The dynamics of this gain control are programmed as a PIDcontroller. The commands for programming the PID controller are asfollows:

#V_SENSOR_VGAIN_P 0.002 //Voltage Var Gain P #V_SENSOR_VGAIN_I 0.004//Voltage Var Gain I #V_SENSOR_VGAIN_D 0.0 //Voltage Var Gain D#I_SENSOR_VGAIN_P 0.002 //Current Var Gain P #I_SENSOR_VGAIN_I 0.004//Current Var Gain I #I_SENSOR_VGAIN_D 0.0 //Current Var Gain DIII.a.8. Waveform Definition

The RF waveform is defined by a pulse generator which activates the mainRF stage (e.g., FETs). The programming of the pulse generator allowsspecification of at least the pulse width, the number of pulses and anoff time. This allows a wide variety of waveform patterns to beprogrammed for the electrosurgical generator system 200.

III.a.9. Outer Loop

One embodiment of the present disclosure includes splitting the outerloop system into two sub-sections: an outer loop target generator whichhandles the time-based changes to the setpoint of the outer loop (e.g.,temperature versus time curves) and an inner loop target generator whichselects which target (e.g., voltage, current, power) the inner loop iscontrolling.

III.a.10 Downloading Configuration Files

It is contemplated that the system of the present disclosure can beconfigured such that the system allows the downloading of theconfiguration files into the electrosurgical generator by the user. Thenew configuration files could be purchased or given to the user forupgrading the electrosurgical system.

FIG. 3 shows another embodiment of the electrosurgical generator system,designated generally by the number 300. An inner loop controller 314includes at least the functionality of the inner loop controller 114shown in FIG. 1. An outer loop controller 316 together with a high levelRF algorithm (HLA) module 330 include at least the functionality of theouter loop controller 116 shown in FIG. 1. A control system for anelectrosurgical generator having an inner and outer loop controller isdescribed in U.S. patent application Ser. No. 10/427,832, filed on May1, 2003, the contents of which are incorporated herein by reference intheir entirety. A configuration controller 318 includes at least thefunctionality of the configuration controller 118 shown in FIG. 1. Asensor module 304 includes at least the sensors 104 shown in FIG. 1 anda configuration sensor module 312 includes at least the sensors 112shown in FIG. 1. An RF stage 306 corresponds to the RF stage 106 shownin FIG. 1. A waveform pattern controller 332 provides at leastfunctionality described above with respect to waveform generation.

Configuration data 340, 342, 344, 346, 348 350 is generated by theconfiguration controller 318. The inner loop controller 314 includes aninner loop target generator (ILTG) 360 and an inner loop control module(ILCM) 362. The outer loop controller 316 includes an outer loop targetgenerator (OLTG) 364 and an outer loop control module (OLCM) 366. TheILTG configuration data 340 is provided to the ILTG 360. The ILCMconfiguration data 342 is provided to the OLCM 366. The OLTGconfiguration data 344 is provided to the OLTG 364, the OLCMconfiguration data 346 is provided to the OLCM 366. The waveformcontroller configuration data 348 is provided to the waveform controller332. The HLA module configuration data 350 is provided to the HLA module330.

The elements ILTG 360, ILCM 362, OLTG 364, OLCM 366, the configurationcontroller 318, the configuration sensor module 312, the HLA module 330,the waveform controller 332 or the sensor module 304, or a combinationthereof, may be disabled and/or bypassed, or a connection between two ormore elements may be disabled so that the electrosurgical generatorcontrol system 300 may operate without the disabled element. Thedisabled elements pass the input directly to the output of the module,thus allowing the enabled elements to operate with no change from thedisabled units. The inner loop controller 314 processes sensor datareceived from the sensor module 304 in accordance with configurationdata received from the configuration controller 318, updatedconfiguration data received from the HLA module 330, and the inner loopmultiplier control signal received from the outer loop controller 316,and generates a supply setpoint control signal which is provided to theRF stage 306, where an amplitude of an aspect of the RF energy output bythe RF stage 306 is controlled in accordance with the supply setpoint.In the example provided in FIG. 3, the supply setpoint is an HV supplysetpoint which controls amplitude of the voltage output by the RF stage306.

The ILTG 360 receives configuration data including at least onealgorithm selected from algorithms including a sculpted curve (includingsculpted current, sculpted voltage and sculpted power) and RF limitalgorithms, pulse parameters (pulse enable (for enabling or disablingpulsing function), pulse on (length of “high” pulse), pulse off (lengthof “low” pulse), pulse min (amplitude of “low” pulse), an inner loopgain curve, maximum RF limits, a control curve and Zlow, Zhigh, antivalues (where Zcntl indicates when to switch the control variable, e.g.,from current to voltage, or vice versa); sensor data from the sensormodule 304; and the inner loop multiplier from the outer loop controller316. The ILTG 360 generates a target signal to the ILCM 362 based on theinner loop control curve provided via the configuration data from theconfiguration controller 318 and updatable by the configuration updatedata from the HLA module 330; the inner loop multiplier from the outerloop controller 316; and impedance and actual RF current and voltagefrom the sensor module 304. The target signal preferably representsvoltage, but it can also represent the HV supply setpoint in the casewhen the ILCM is bypassed and/or disabled.

The ILTG 360 further includes modules for performing the followingfunctions: performing a sculpted curve algorithm including, for example,but not limited to converting a sculpted current or power control curveinto a voltage control curve; limiting the control curve to the maximumvalues (e.g., for current, voltage and power) allowed for the hardware;calculating and generating the inner loop target based on the sensordata, the control curve and the inner loop multiplier; controlling theinner loop control module gains based on impedance sensor data and thegain curve which specifies changes in gain due to changes in impedancefor generating the gain multiplier; pulsing the inner loop target; andselecting a mode based on the sensed load impedance and the impedancebreakpoints Zlow, Zhigh and Zcntl, and generating a control mode signalin accordance with the selected mode.

Mode selection determines which sensor data is to be used by the ILCM362 and which variable is to be controlled, e.g., sensor data thatcorresponds to current, voltage or power for controlling current,voltage or power, respectively. Preferably, current control is to beused for impedances less than Zlow, power or voltage control is used forimpedance values between Zlow and Zhigh, and voltage control is used forthe remaining impedance values. To avoid inaccuracy and preventunnecessary control mode switching when the impedance is near abreakpoint, hysteresis is used when the impedance is close to abreakpoint.

The RF limit algorithm causes the ILTG 360 and the ILCM 362 to operatein an open loop mode in which there is minimal software control of theHV supply setpoint output in response to sensor data. The open loop modeis generally used for calibration and service functions, but is notlimited thereto. Preferably, in the open loop mode the amplitudeactivation setting determines the percentage of full scale output thatthe RF stage 306 will deliver. The RF limit algorithm protects the RFstage 306 from user actions, such as setting the activation amplitudesetting to a level that could cause the HV supply setpoint to be set toa level that could damage the RF stage 306. The HV supply setpoint iskept within predetermined limits, where the limits are determined by thecontrol curve.

The inner loop control curve is interpreted to represent the maximumallowed HV supply setpoint at the specified impedance (Z). As long asthe maximum HV supply setpoint allowed is not exceeded, as defined bythe inner loop control curve, control of the HV supply setpoint is basedon the inner loop multiplier. If the control curve is exceeded, then theoutput HV supply setpoint is held at the maximum allowed HV supplysetpoint for providing protection to the electrosurgical unit receivingthe energy generated by the RF stage 306. The HV supply setpoint is setto equal the inner loop multiplier after the HV supply setpoint is lessthan the maximum RF limit value, with some possible hysteresis.

The max RF limits parameter provides another layer of control layered ontop of the control curve for use with any algorithm by providing maximumlimits for current, voltage and/or power levels of the HV supplysetpoint. The control layer which uses the max RF limits parameterfurther provides protection to the RF stage unit 306 and theelectrosurgical unit (ESU) receiving the energy generated by the RFstage 306, including protection from changes to the software.Furthermore, the control system may use the minimum of the limitsdescribed by the control curve and the max RF limit for limiting the HVsupply setpoint.

The pulsing function may run in parallel with other ILTG 360 algorithms.The duration of the “high” and “low” pulses, the time between leadingedges, the level for the “low” pulse, etc., are specified by the pulseparameters. The level for the “high” pulse is defined by the controlcurve, the impedance data from the sensor data and the inner loopmultiplier for closed loop control, or by the inner loop multiplier foropen loop control, such as when the RF limit algorithm is performed. Thepulsing of the inner loop target may contribute to providing sharp edgedpulses of the HV supply setpoint, if desired.

The inner loop control curve received via the configuration dataspecifies the inner loop desired output values versus sensed impedancevalues obtained from sensor data. The desired output values of thereceived inner loop control curve represent current, voltage or power,as determined by the algorithm received via the configuration data(e.g., the sculpted current, voltage or power algorithm, respectively).The received inner loop control curve may be converted into a voltage,current or power curve, in accordance with the mode selected, in whichthe desired output values represent voltage, current or power,respectively. The control curve (or converted control curve) may bestructured, for example, as a multi-dimensional array. One column of thearray specifies impedance values, and another column specifies desiredoutput values, where the desired output values represent current, poweror voltage in accordance with the control mode. Preferably the desiredoutput values are normalized between 0 and 1.0. A desired output valuewhich is output as the inner loop target is generated by obtaining anormalized desired output value via linear interpolation based on theactual impedance, and multiplying the normalized desired output value bythe inner loop multiplier.

Control of the inner loop control module gains (herein referred to asinner loop gain control) includes generating the gain multiplier inresponse to a constant control voltage as impedance changes. System gain(e.g., RF voltage/HV supply set-point, where the RF voltage is measuredRF voltage output by the RF stage 306) varies with patient loadimpedance. The inner loop gain control objective is to stabilize thesystem gain to keep it close to constant as the load impedance changes.The inner loop gain curve is theoretically a set of points of a gainmultiplier plotted versus impedance derived from the design of thehardware, which is designed to adjust the gains due to the response ofthe electrosurgical generator system 300.

The gain curve preferably holds a normalized voltage response versusimpedance. By using a normalized voltage response, the voltage isconverted into the variable that we are controlling (current, power, orvoltage). The gain multiplier is computed by taking the inverse of thevoltage response that corresponds to the sensed impedance. The gainmultiplier is used to adjust the inner loop PID values of the ILCM 362so that the control system gain is close to constant. Accordingly, thePID values should be calculated assuming a system gain of 1.0, as thePID values are adjusted as described above.

To compute the gain multiplier, for voltage control, the interpolatedvalue of the gain curve is inverted. For power control, the gainmultiplier is Z/V² (where V is the interpolated value from the gaincurve). For current control, the gain multiplier is Z/V. Accordingly,the ILSM 362 can use a single set of PID gain values for the inner loopvoltage, current or power control, and the gain multiplier is used tomodify the PID gains during the procedure in virtual real-time.

The ILCM 362 receives configuration data including control parameters,such as PID parameters; sensor data from the sensor module 304 and theinner loop target, the gain multiplier and the control mode (Irms, Vrms,Pavg or Bypass) from the ILTG 360. The ILCM 362 adjusts the HV supplysetpoint in accordance with the received data so that the inner looptarget is reached.

The ILCM 362 preferably uses a control algorithm, such as a PIDalgorithm, which is able to switch between control modes such as currentcontrol, voltage control, power control and a bypass mode (e.g., minimalcontrol, where received data is provided as the output) without largedisturbances when switching control modes. When the ILTG 360 isperforming the RF limit algorithm, the ILCM 362 is preferably in bypassmode. When switching between control modes, the PID loop algorithm (ifactive) pre-loads the integral term for minimum disturbance.

With respect to the outer loop controller 316, the OLTG 364 receivesconfiguration data including the outer loop target curve, the targetslew rate, the time multiplier and an algorithm selectable fromalgorithms including time control or bypass algorithms; the amplitudemultiplier from the HLA module 330; and time signals. Other than whenperforming the bypass algorithm, the OLTG 364 generates a time varyingouter loop target in accordance with the received data which is providedto the OLCM 366, where the outer loop target may represent a propertysuch as, but not limited to, temperature, current, power, voltage orimpedance. Preferably, the outer loop target is generated by a linearinterpolation of the adjusted outer loop target curve, where the targetcurve provided via the OLTG configuration data is adjusted in accordancewith the amplitude multiplier, the time multiplier and/or time.

The outer loop target slew rate parameter allows the system to have aprogrammable slew rate of the outer loop target, so that regardless ofhow quickly the amplitude multiplier changes, the outer loop target willnot change faster than the programmed slew rate. The outer loop targetslew rate control function is typically used in systems in which theuser may have direct control of a parameter, such as the activationamplitude setting, and it is desired to limit the rate at which theactivation amplitude setting can be changed.

The OLCM 366 receives configuration data including control parameters,such as PID parameters, inner loop multiplier maximum and minimum limitvalues, pulse parameters, at least one algorithm selectable fromalgorithms such as temperature, temperature limit, impedance (Z), orbypass algorithms, algorithm parameters, such as temperature limits andan outer loop gain curve; sensor data from the sensor module 304 and theouter loop target from the OLTG 364. Preferably, the OLCM 366 uses acontrol algorithm, such as a PID algorithm which operates in accordancewith the PID parameters. The OLCM 366 adjusts the inner loop multiplierin accordance with the received data in order to reach the outer looptarget.

The OLCM 366 is capable of pulsing the inner loop multiplier. When thepulse is “on”, the output value is the computed inner loop multiplier.When the pulse is off', the output is set to a predetermined value.

The OLCM 366 controls outer loop gain. The outer loop gain curvedescribes a plot of gain multiplier versus impedance derived from theinner loop control curve, and thus the programming of the inner loop byway of the configuration parameters. The outer loop gain curve may bestructured, for example, as a two-dimensional array. When outer loopgain control is enabled, the outer loop gain is multiplied by the gainmultiplier that corresponds to the received impedance sensor data. Theouter loop gain control stabilizes the system gain to maintain systemgain that is close to constant. From the perspective of the outer loopcontroller 316, the system gain varies with patient load impedance dueto the inner loop control curve programming. Conceptually, the outerloop gain is multiplied by the inverse of the normalized inner loopcontrol curve, thus keeping the system gain close to constant. The outerloop gain curve specifies the inverse of the normalized inner loopcontrol curve, where the outer loop gain curve may be further adjustedfor keeping the system stable.

The HLA module 330 receives configuration data including at least oneprocedural algorithm selectable from algorithms for controlling theelectrosurgical generator system 300 during specific types ofprocedures, or procedures performed under specific conditions, such ason specific organs. The procedural algorithms include algorithms, suchas, vessel sealing (e.g., LigaSure™ (standard and precise)), rate ofchange of impedance (dZ/dt), lung, bowel, ablation, etc., and bypassalgorithms, and a combination thereof; algorithm specific data foradjusting at least one specified procedural algorithm; sensor data fromthe sensor module 304; time signals; user entered settings; and theactivation amplitude setting from the configuration controller 318.

Preferably, the HLA module 330 uses a state based control algorithm. TheHLA module 330 performs top level RF delivery algorithms which areprimarily state based. The HLA module 330 has the capability of changingthe configuration data of the lower level modules, including the ILTG360, the ILCM 362, the OLTG 364 and the OLCM 366 and the waveformcontroller (332). The HLA module 330 sets up the lower level modules inaccordance with the received data by adjusting the correspondingconfiguration data as determined necessary. Furthermore, during aprocedure the HLA module 330 reprograms the lower level modules inaccordance with the received data by adjusting the correspondingconfiguration data in accordance with the algorithm selected, and inresponse to measured properties as indicated by the received sensordata, where the reprogramming may be performed in virtual real-time.

The user entered settings may be used in conjunction with any of thealgorithms selected. Furthermore, the user entered settings may controlthe activation amplitude setting for one or more electrical or physicalproperties (e.g., power, current, voltage or temperature) withoutdirectly identifying the particular property and target setting. Forexample, the user may select from a variety of generic settings, whereeach generic setting includes a predetermined setting for one or moreproperties.

The waveform controller 332 receives configuration data including “on”time, dead time, number of pulses per burst of pulses, and delay timebetween bursts of pulses. It is contemplated that the waveformcontroller 332 may be programmed by the HLA module 332 if determinednecessary, and/or by the configuration file via download from theconfiguration controller 318. The waveform controller 332 controls thehardware which generates a wave pattern (such as a square wave pattern)which drives FETs in the RF stage. Parameters of the waveform patternthat may be controlled by the waveform controller 332 include at least,“on” time (pulse width of a single pulse), dead time (delay to nextpulse), number of pulses per group of pulses, and delay time betweengroups of pulses.

The waveform generator 332 may receive an amplitude envelope parameterwith the configuration parameters, and may further include circuitry,such as analog and/or logic circuitry for adjusting amplitude of pulseswithin a burst of pulses. The amplitude envelope parameter may describethe amplitude setting for individual pulses of groups (or bursts) ofpulses. The amplitude adjustments may be performed at a rate that isfaster than the rate at which the software, such as the inner loopcontroller 314, is capable of providing control, so that the amplitudeadjustments may be provided for individual pulses of groups of pulses.The waveform generator may receive a control signal, such as a controlsignal from the ILCM 362, indicative of the HV supply setpoint, forsynchronizing the amplitude adjustments with the HV supply setpoint orwith the signals output by the RF stage 106.

Preferably, the configuration controller 318 is a system which selectsthe required configuration files based on user input and download themto the rest of the system. It is contemplated that the configurationcontroller 318 may be removable and replaceable. The configurationcontroller receives configuration sensor data from the configurationsensor module 312 and/or user input devices (not shown) for direct userinput. The configuration controller 318 generates the configuration dataand the activation amplitude setting in accordance with the receiveddata. The configuration controller 318 selects the algorithm to be usedby the ILTG 360, OLTG 364, OLCM 366 and the HLA 330. The configurationdata is provided to the appropriate modules as described above, and theactivation amplitude setting is provided to the HLA module 330.

The configuration controller may configure itself (or alternatively beconfigured by another processor) in accordance with conditions, such asthe ESU and/or the user interface to the electrosurgical generatorsystem being used.

The configuration sensor module 312 includes sensors for sensing useractions, (including user actions not intentionally related to providinginput to the configuration controller 318), environmental conditions,patient conditions or other properties or conditions. The configurationsensor module 312 further includes analog and or digital circuitry andsoftware modules for processing signals generated by the sensors such asfor preparing the signals for input to the configuration controller 318,and for controlling the sensors.

The sensors of the configuration sensor module 312 may include, forexample, a sensor for sensing adjustment of a slider mechanism on theESU for selecting a parameter on the ESU, an optical sensor for sensinga property of the patient's tissue, a proximity sensor for sensingthickness of the patient's tissue, a motion sensor for sensing motion ofthe ESU or the patient, a sensor for sensing moisture levels of tissue,etc. A portion of the sensors may be provided within the sterile fieldof the electrosurgical procedure. The configuration sensor module 312may further include one or more commercially available user inputdevices.

The sensor module 304 includes sensors for sensing electrical propertiesof energy as output by the electrosurgical device, and/or electricaland/or physical properties proximate the surgical site or the ESU.Furthermore, the sensor module includes analog and or digital circuitryand software modules for processing signals generated by the sensorssuch as for preparing the signals for input to the control system of theelectrosurgical generator system 300, and for calculating values derivedfrom the sensed properties. It is contemplated that sensors andcircuitry may be shared by the sensor module 304 and the configurationcontroller 318. Furthermore, the sensor module 304 may further includeat least one control system for controlling the sensors, amplificationof sensed signals, sampling rates of the sensors, etc. The sensor module304 may further include one or more commercially available user inputdevices.

In a preferred embodiment, a user may enter user input to theconfiguration controller for selecting (directly or indirectly)configuration parameters, the activation amplitude setting and theamplitude multiplier. As described above, the user input to theconfiguration controller may not be intentionally entered for selectingconfiguration parameters.

It is contemplated that another configuration parameter, an expectedcrest factor parameter, may be provided to at least one of the modulesof the control system of the electrosurgical generator 300 for providingfurther control. Furthermore, the sensor module 304 may include sensorsfor sensing the crest factor. The control system may further include asafety monitor module which compares the expected crest factor parameterwith the sensed crest factor, and sends control signals to other modulesof the control system for making adjustments in accordance with theresults of the comparison. The sensor module 304 may configure thesensors for setting up the dynamic range of the sensors in accordancewith the expected crest factor parameter.

It is further contemplated that the control system includes anactivation sequencer which controls startup and ending of RF delivery.The activation sequencer may receive configuration data from theconfiguration controller 318 and or updated configuration data from theHLA module 330 for performing startup and/or shutdown procedures inaccordance with the configuration data and/or updated configurationdata.

The software modules of the electrosurgical generator control system300, including the inner loop controller 314, outer loop controller 316,the configuration controller 318, the HLA module 330, the waveformcontroller 332 and control modules associated with the sensor module 304and/or the configuration sensor module 312 are respectively executableon at least one processor, such as a microprocessor and/or a DSP.Resources for processing, storage, etc., or a combination thereof may beshared by any combination of the aforementioned software modules. Thesoftware instructions of the respective software modules may be storedon computer readable medium, such as CD-ROMs or magnetic disks, and/ormay be transmitted and/or received via propagated signals.

In operation, the control system may be initialized during the power upand/or the activation process. The electrosurgical generator system 300recognizes (via sensing or “plug and play” notification) the type of ESUand/or electrosurgical generator user interface to be used. Sensors ofthe sensor module 304 and/or the configuration sensor module 312 senseinitialization properties associated with the environment, ESU orpatient. Information is entered via a user interface, such as patientand/or procedure related information (procedure to be performed, tissueto be operated upon, patient identification, age, weight, expected fatcontent). The information or additional information may be retrievedfrom a database accessible by the control system of the electrosurgicalgenerator system 300.

The appropriate configuration files are selected or generated by theconfiguration controller 318. It is contemplated that at least a portionof the configuration files are stored by the configuration controller318 and/or associated memory. Accordingly, selected configuration filesnot stored by the configuration controller 318 may be downloaded to theconfiguration controller 318 through various methods. Upon activation ofthe electrosurgical generator system 300 the configuration controller318 downloads the configuration files into the respective modules of thecontrol system.

The control system for the electrosurgical generator system 300 providesa high degree of flexibility for performing a wide variety of differenttypes of control for controlling the output of electrosurgical energyfor use in a wide variety of types of procedures which may be performedunder a wide variety of circumstances. Furthermore, the control systemprovides a wide variety of different types of control during aprocedure, where the control and selection of the type of control isprovided on the fly, or in virtual real time in response to propertiesassociated with sensed properties and/or user input or actions. The typeof control provided may be selected in response to a variety of factors,such as sensed or input tissue response, type of electrosurgicalinstrument being used, patient profile, the type of procedure beingperformed, environmental conditions, the type of tissue being treatedand the condition of the tissue being treated.

Although this disclosure has been described with respect to preferredembodiments, it will be readily apparent to those having ordinary skillin the art to which it appertains that changes and modifications may bemade thereto without departing from the spirit or scope of the claimsappended hereto.

1. An electrosurgical generator system, comprising: an electrical generator having an RF stage for outputting electrical energy having at least one waveform for performing an electrosurgical procedure; and at least one control module executable on at least one processor which controls at least one parameter of the outputted electrical energy, the at least one control module including an inner loop controller and an outer loop controller, the inner loop controller configured to compute a gain multiplier that is computed by taking an inverse of a voltage response corresponding to a sensed load impedance, the outer loop controller configured to control outer loop gain by multiplying the outer loop gain by the gain multiplier computed by the inner loop controller to stabilize overall gain of the electrosurgical generator despite variations in the sensed impedance.
 2. The electrosurgical generator system as in claim 1, wherein the electrosurgical generator system further comprises a sensor module operably associated with the generator, the sensor module having at least one sensor for sensing at least one of electrical and physical properties related to the outputted electrosurgical energy and generating sensor data relating thereto.
 3. The electrosurgical generator system as in claim 2, wherein the at least one sensor is selected from the group consisting of current, phase shift, voltage, power, impedance, and temperature sensors.
 4. The electrosurgical generator system as in claim 3, wherein the outer loop controller generates a control signal in accordance with at least a first subset of the sensor data; and the inner loop controller generates a setpoint control signal, the setpoint control signal being provided to the RF stage for controlling at least an amplitude of the outputted electrical energy by the RF stage, wherein the setpoint control signal is generated based on at least the control signal generated by the outer loop controller and a second subset of the sensor data.
 5. The electrosurgical generator system as in claim 4, wherein the outer loop controller includes an outer loop target generator for generating an outer loop target value based on at least one of a time signal indicative of a time lapse during the procedure and an outer loop target curve providing target values versus time values provided via the configuration data and an outer loop control module performing a control algorithm for generating the control signal based on at least the outer loop target value and the first subset of sensor data.
 6. The electrosurgical generator system as in claim 5, wherein the inner loop controller includes an inner loop target generator for generating at least one of an inner loop target value based on at least one of the second subset of sensor data and an inner loop target curve providing target values versus impedance values provided via the configuration data and an inner loop control module performing a control algorithm for generating the setpoint control signal based on at least the inner loop target value and the second subset of sensor data.
 7. The electrosurgical generator system as in claim 6, wherein each of the outer loop target generator, the outer loop control module, the inner loop target generator and the inner loop control module may be one of disabled or bypassed so that the electrosurgical generator may operate without the disabled or bypassed element.
 8. The electrosurgical generator system as in claim 2, wherein the electrosurgical generator system further comprises a high level RF algorithm module programmed therein which generates updated configuration data for the at least one control modules in response to the sensor data and a time signal indicative of the amount of time lapsed during a procedure, the algorithm further providing updated configuration data to the at least one control modules for reconfiguring the respective control modules.
 9. The electrosurgical generator system as in claim 8, wherein the updated configuration data generated by the high level RF algorithm module includes at least one of an algorithm selection and algorithm specific data for adjusting at least one procedural algorithm.
 10. The electrosurgical generator system as in claim 8, wherein the updated configuration data is provided to the inner loop controller.
 11. The electrosurgical generator system as in claim 10, wherein the configuration data includes at least one of an algorithm selected from at least a sculpted current algorithm, a sculpted voltage algorithm and a sculpted power algorithm, pulse parameters for controlling a waveform pattern of the setpoint control signal, a gain curve providing predetermined gain multiplier values plotted versus predetermined impedance values, maximum limitation values for the setpoint control signal, a control curve providing target values plotted versus impedance values, predetermined impedance breakpoint values, and control algorithm parameters.
 12. The electrosurgical generator system as in claim 11, wherein the configuration data is provided to the outer loop controller, wherein the configuration data includes at least one of a target curve providing target values plotted versus time values, a target slew rate for limiting the slew rate of the outer loop controller, a time multiplier for adjusting the target curve with respect to the time values, control algorithm parameters, threshold range values for the control signal generated by the outer loop controller, pulse parameters for pulsing the control signal, an outer loop algorithm selected from at least one of a temperature algorithm, a temperature limit algorithm, and an impedance algorithm, outer loop algorithm parameters, and a gain curve providing predetermined gain multiplier values plotted versus predetermined impedance values.
 13. The electrosurgical generator system as in claim 1, wherein the electrosurgical generator system further comprises a configuration sensor module operably associated with the generator having at least one sensor for sensing at least one property relating to at least one of a user action relating directly to operation of an electrosurgical instrument, and at least one of a physical or electrical property sensed in a field of the procedure, wherein the configuration sensor module generates at least one signal corresponding thereto.
 14. The electrosurgical generator system as in claim 1, further comprising a waveform controller operably associated with the generator for controlling a waveform pattern of the electrosurgical energy generated by the RF stage. 